﻿using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;

namespace MotoGame.Jogo.Estados.Menu
{
    class Botao : Sprite
    {
        /// <summary>
        /// Cria os botões das interfaces e define o funcionamento de cada um 
        /// </summary>
        animacao Parado;
        animacao Mudando;
        animacao Animacao_atual;

        Boolean MouseNoSprite;

        public Botao(ContentManager Content, GameWindow Window, string Textura)
            : base(Content.Load<Texture2D>(Textura))
        {
            Parado = new animacao();
            Parado.quadro_X = 200;
            Parado.quadro_Y = 147;
            Parado.qtd_quadros = 2;
            Parado.quadros_seg = 2;
            Parado.Y = 0;

            Mudando = new animacao();
            Mudando.quadro_X = 200;
            Mudando.quadro_Y = 147;
            Mudando.qtd_quadros = 2;
            Mudando.quadros_seg = 2;
            Mudando.Y = 147;

            textura = Content.Load<Texture2D>(Textura);

            Animacao_atual = Parado;

            nome = Textura;

        }

        public override void Update(GameTime gameTime)
        {
            Game1.mouse_atual = Mouse.GetState();

            if ((Game1.mouse_atual.X >= posicao.X && Game1.mouse_atual.X <= posicao.X + textura.Width) && (Game1.mouse_atual.Y >= posicao.Y && Game1.mouse_atual.Y <= posicao.Y + textura.Height / 2))
            {
                Animacao_atual = Mudando;
                MouseNoSprite = true;
            }
            else
            {
                Animacao_atual = Parado;
                MouseNoSprite = false;
            }

            if (Game1.mouse_atual.LeftButton == ButtonState.Pressed && Game1.mouse_anterior.LeftButton == ButtonState.Released)
            {
                if (MouseNoSprite)
                {
                    if (this.nome == "Menu/Texturas/play")
                    {
                        Game1.estado_atual = Game1.Estado.FASE1;
                    }
                    else if (this.nome == "Menu/Texturas/creditos")
                    {
                        Game1.estado_atual = Game1.Estado.CREDITO;
                    }
                    else if (this.nome == "Menu/Texturas/sair")
                    {
                        Game1.estado_atual = Game1.Estado.SAIR;
                    }
                    else if (this.nome == "Menu/Texturas/back")
                    {
                        Game1.estado_atual = Game1.Estado.MENU;
                    }
                }
            }
        }

        public void Draw(GameTime gameTime, SpriteBatch spriteBatch)
        {
            base.Draw(gameTime, spriteBatch, Animacao_atual);


        }
    }

}
